Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Багатомодульне програмування

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування та операційні системи
Група:
КІ 31
Варіант:
27

Частина тексту файла

Міністерство освіти і науки Національний університет «Львівська політехніка» Кафедра ЕОМ Звіт до лабораторної роботи № 7 з дисципліни: “ Засоби системного програмування” на тему: “ Багатомодульне програмування” Львів – 2016 Мета роботи • Оволодіти навиками створення багатомодульних програм. Засвоїти правила взаємодії різних модулів. Завдання Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу. Програма повинна складатися з чотирьох модулів: головний модуль – містить спільний сегмент стеку, необхідні дані та виклик основних процедур; модуль вводу - забезпечує ввід даних з клавіатури в десятковій формі; модуль безпосередніх обчислень – здійснює всі необхідні арифметичні дії. модуль виводу – забезпечує вивід на екран результату в десятковій формі. Всі модулі повинні бути в різних файлах і об’єднані на етапі лінкування. Передача параметрів може здійснюватися довільним чином. Переконатися у правильності роботи кожного модуля зокрема та програми загалом. Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. Дати відповідь на контрольні запитання. Індивідуальне завдання(Варіант 27): № Вираз K  27 X=A2*B1+C4/(K-E1*F1) 7A7627   Текст програми: main.asm DOSSEG EXTRN input:FAR, calculation:FAR, Output:FAR PUBLIC A,B,C,E,F,X STACKSG SEGMENT PARA STACK 'Stack' DW 127 DUP(0) STACKSG ENDS DATASG SEGMENT PARA PUBLIC 'Data' A dw 0 B db 0 C dd 0 E db 0 F db 0 X dd 0 DATASG ENDS CODESG SEGMENT PARA PUBLIC 'Code' start: ASSUME CS:CODESG,DS:DATASG,SS:STACKSG MOV AX,DATASG MOV DS,AX call input ;процедура вводу з клавіатури call calculation ;обчислення виразу call output ;виводу результату mov ah,01 int 21h mov ah,4Ch int 21h CODESG ENDS end start input.asm EXTRN A:WORD,B:BYTE,C:DWORD,E:BYTE,F:BYTE MY_MUL MACRO X,Y,Z ;макрос mov z,0 mov z+2,0 MOV ax,X MUL Y MOV Z,ax MOV Z+2,dx MOV AX,X+2 MUL Y ADD Z+2,AX mov ax,Z mov dx,Z+2 ENDM DATASG SEGMENT PARA PUBLIC 'Data' MESSG_X DB 13,10,'X=A2*B1+C4/(K-E1*F1) K=7A7627h','$' MESSG_A DB 13,10,'A = ','$' MESSG_B DB 13,10,'B = ','$' MESSG_C DB 13,10,'C = ','$' MESSG_E DB 13,10,'E = ','$' MESSG_F DB 13,10,'F = ','$' MESSG_X1 db 13,10,'X = ','$' erStr1 db 13,10,'Data not input_variable',13,10,'$' erStr2 db 13,10,'Incorrectly data ',13,10,'$' erStr2_1 db 13,10,' F = 0 --> divide by zero ',13,10,'$' erStr3 db 13,10,'Data is too long ',13,10,'$' TempStr db 10 dup (0) TempBin dw 0,0 MaxLen dw 0 Mult10 dw 1,0 my_z dw 0,0 DATASG ENDS CODESG SEGMENT PARA PUBLIC 'CODE' ASSUME DS:DATASG, CS:CODESG input proc far public input LEA DX,MESSG_X ; lea завантажує ефективну адресу MESSG_X MOV AH,09 INT 21H LEA DX,MESSG_A MOV AH,09 INT 21H mov di,offset A mov MaxLen,5 mov cx,MaxLen call input_variable LEA DX,MESSG_B MOV AH,09 INT 21H mov di,offset B mov MaxLen,3 mov cx,MaxLen call input_variable LEA DX,MESSG_C MOV AH,09 INT 21H mov di,offset C mov MaxLen,9 mov cx,MaxLen call input_variable LEA DX,MESSG_E MOV AH,09 INT 21H mov di,offset E mov MaxLen,3 mov cx,MaxLen call input_variable LEA DX,MESSG_F MOV AH,09 INT 21H mov di,offset F mov MaxLen,3 mov cx,MaxLen call input_variable ret input endp input_variable PROC mov si,0 In_00: mov ah,01 int 21h cmp al,0Dh je In_1 In_0: mov dl,al call CHECK_BYTE mov TempStr[si],dl inc si loop In_00 In_1: push si dec si cmp cx,MaxLen jne In_2...
Антиботан аватар за замовчуванням

05.11.2016 21:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини